package com.qzsoft.system.modules.sys.noticeTemplate.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.qzsoft.jeemis.common.annotation.Dict;
import com.qzsoft.jeemis.common.validator.group.DefaultGroup;
import com.qzsoft.jeemis.common.validator.group.UpdateGroup;
import com.qzsoft.system.modules.sys.notice.entity.SysNoticeFileEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 通知模板表(SysNoticeTemplateEntity)表实体类
 *
 * @author
 * @since 2020-08-10
 */
@ApiModel(value = "通知模板表")
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sys_notice_template")
public class SysNoticeTemplateEntity extends Model<SysNoticeTemplateEntity> {
	private static final long serialVersionUID = -25723839900015523L;
	/**
	 *主键UUID主键
	 */
	@TableId
	@ApiModelProperty(value = "主键UUID")
	@NotNull(message="{id.require}", groups = UpdateGroup.class)
	private String id;
	/**
	 *模板标题
	 */
	@ApiModelProperty(value = "模板标题")
	@Excel(name = "模板标题")
	private String title;
	/**
	 *模板内容  (超文本编辑器)
	 */
	@ApiModelProperty(value = "模板内容(超文本编辑器)")
	private String content;
	/**
	 *模板内容参数
	 */
	@ApiModelProperty(value = "模板内容参数")
	private String templateVars;
	/**
	 *codeid  (dx) 工作通知  政策法规   单位改革类
	 */
	@ApiModelProperty(value = "dw 一级栏目")
	private String noticeType1;

	@ApiModelProperty(value = "dx 二级栏目")
	private String noticeType2;

	/**
	 * 模板状态
	 * 0 停用  1 启用
	 */
	@ApiModelProperty(value = "0 停用  1 启用")
	private Boolean status;
	/**
	 *创建者机构deptid
	 */
	@ApiModelProperty(value = "创建者机构deptid")
	@TableField(fill = FieldFill.INSERT)
	private String deptId;
	/**
	 *创建者机构code
	 */
	@ApiModelProperty(value = "创建者机构code")
	@TableField(fill = FieldFill.INSERT)
	private String deptCode;
	/**
	 *排序,置顶通过排序号实现,如果排序号前10为置顶,置顶排序号和时间排序
	 */
	@ApiModelProperty(value = "排序")
	private Integer sort;
	/**
	 *创建者
	 */
	@ApiModelProperty(value = "创建者")
	@TableField(fill = FieldFill.INSERT)
	private Long creator;
	/**
	 *创建时间
	 */
	@ApiModelProperty(value = "创建时间")
	@TableField(fill = FieldFill.INSERT)
	private Date createDate;
	/**
	 *更新者
	 */
	@ApiModelProperty(value = "更新者")
	@TableField(fill = FieldFill.UPDATE)
	private Long updater;
	/**
	 *更新时间
	 */
	@ApiModelProperty(value = "更新时间")
	@TableField(fill = FieldFill.UPDATE)
	private Date updateDate;

	/**
	 * 表之外的字段
	 */
	@ApiModelProperty(value = "栏目1")
	@Dict(dicCodeField ="noticeType1",dictCodeId ="DW")
	@TableField(exist=false)
	@Excel(name = "一级栏目")
	private String noticeType1Desc;

	@ApiModelProperty(value = "栏目2")
	@Dict(dicCodeField ="noticeType2",dictCodeId ="DX")
	@TableField(exist=false)
	@Excel(name = "二级栏目")
	private String noticeType2Desc;

	/**
	 * 附件表
	 */
	@TableField(exist=false)
	private List<SysNoticeFileEntity> fileList;

	@TableField(exist = false)
	private String orderField;

	@TableField(exist = false)
	private String order;

	/**
	 * 获取主键值
	 *
	 * @return 主键值
	 */
	@Override
	protected Serializable pkVal() {
		return this.id;
	}
}